<!DOCTYPE html>
<html lang="en">

<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
	<meta name="keywords" content="Nacos,服务,配置,性能" />
	<meta name="description" content="Nacos服务配置性能测试报告" />
	<!-- 网页标签标题 -->
	<title>Nacos服务配置性能测试报告</title>
	<link rel="shortcut icon" href="https://img.alicdn.com/tfs/TB1hgJpHAPoK1RjSZKbXXX1IXXa-64-64.png"/>
	<link rel="stylesheet" href="/build/documentation.css" />
</head>
<body>
	<div id="root"><div class="documentation-page" data-reactroot=""><header class="header-container header-container-normal"><div class="header-body"><a href="/zh-cn/index.html"><img class="logo" src="/img/nacos_colorful.png"/></a><div class="search search-normal"><span class="icon-search"></span></div><span class="language-switch language-switch-normal">En</span><div class="header-menu"><img class="header-menu-toggle" src="/img/menu_gray.png"/><ul><li class="menu-item menu-item-normal"><a href="/zh-cn/index.html">首页</a></li><li class="menu-item menu-item-normal menu-item-normal-active"><a href="/zh-cn/docs/what-is-nacos.html">文档</a></li><li class="menu-item menu-item-normal"><a href="/zh-cn/blog/index.html">博客</a></li><li class="menu-item menu-item-normal"><a href="/zh-cn/community/index.html">社区</a></li><li class="menu-item menu-item-normal"><a href="https://cn.aliyun.com/product/aliware/mse?spm=nacos-website.topbar.0.0.0">企业版Nacos</a><img class="menu-img" src="https://img.alicdn.com/tfs/TB1esl_m.T1gK0jSZFrXXcNCXXa-200-200.png"/></li><li class="menu-item menu-item-normal"><a href="http://console.nacos.io/nacos/index.html">控制台样例</a></li></ul></div></div></header><div class="bar"><div class="bar-body"><img src="/img/docs.png" class="front-img"/><div class="bar-title"><span>Nacos 文档</span><div class="bone bone-light"></div></div><img src="/img/docs.png" class="back-img"/></div></div><section class="content-section"><div class="content-body"><div class="sidemenu"><div class="sidemenu-toggle"><img src="https://img.alicdn.com/tfs/TB1E6apXHGYBuNjy0FoXXciBFXa-200-200.png"/></div><ul><li class="menu-item menu-item-level-1"><span>Nacos </span><ul><li style="height:180px;overflow:hidden" class="menu-item menu-item-level-2"><span>Nacos是什么?<img style="transform:rotate(0deg)" class="menu-toggle" src="/img/arrow_down.png"/></span><ul><li class="menu-item menu-item-level-3"><a href="/zh-cn/docs/what-is-nacos.html" target="_self">Nacos简介</a></li><li class="menu-item menu-item-level-3"><a href="/zh-cn/docs/concepts.html" target="_self">概念</a></li><li class="menu-item menu-item-level-3"><a href="/zh-cn/docs/architecture.html" target="_self">架构</a></li><li class="menu-item menu-item-level-3"><a href="/zh-cn/docs/feature-list.html" target="_self">功能和需求列表</a></li></ul></li><li style="height:324px;overflow:hidden" class="menu-item menu-item-level-2"><span>快速开始<img style="transform:rotate(0deg)" class="menu-toggle" src="/img/arrow_down.png"/></span><ul><li class="menu-item menu-item-level-3"><a href="/zh-cn/docs/quick-start.html" target="_self">Nacos</a></li><li class="menu-item menu-item-level-3"><a href="/zh-cn/docs/quick-start-spring.html" target="_self">Nacos Spring</a></li><li class="menu-item menu-item-level-3"><a href="/zh-cn/docs/quick-start-spring-boot.html" target="_self">Nacos Spring Boot</a></li><li class="menu-item menu-item-level-3"><a href="/zh-cn/docs/quick-start-spring-cloud.html" target="_self">Nacos Spring Cloud</a></li><li class="menu-item menu-item-level-3"><a href="/zh-cn/docs/quick-start-docker.html" target="_self">Nacos Docker</a></li><li class="menu-item menu-item-level-3"><a href="/zh-cn/docs/use-nacos-with-dubbo.html" target="_self">Nacos Dubbo</a></li><li class="menu-item menu-item-level-3"><a href="/zh-cn/docs/use-nacos-with-kubernetes.html" target="_self">Nacos k8s</a></li><li class="menu-item menu-item-level-3"><a href="/zh-cn/docs/nacos-sync.html" target="_self">Nacos Sync</a></li></ul></li><li style="height:252px;overflow:hidden" class="menu-item menu-item-level-2"><span>用户指南<img style="transform:rotate(0deg)" class="menu-toggle" src="/img/arrow_down.png"/></span><ul><li class="menu-item menu-item-level-3"><a href="/zh-cn/docs/sdk.html" target="_self">Java的SDK</a></li><li class="menu-item menu-item-level-3"><a href="/zh-cn/docs/other-language.html" target="_self">其他语言的SDK</a></li><li class="menu-item menu-item-level-3"><a href="/zh-cn/docs/open-api.html" target="_self">Open-API指南</a></li><li class="menu-item menu-item-level-3"><a href="/zh-cn/docs/nacos-spring.html" target="_self">Nacos Spring</a></li><li class="menu-item menu-item-level-3"><a href="/zh-cn/docs/system-configurations.html" target="_self">Nacos系统参数介绍</a></li><li class="menu-item menu-item-level-3"><a href="/zh-cn/docs/faq.html" target="_self">FAQ</a></li></ul></li><li style="height:36px;overflow:hidden" class="menu-item menu-item-level-2"><span>运维指南<img style="transform:rotate(-90deg)" class="menu-toggle" src="/img/arrow_down.png"/></span><ul><li class="menu-item menu-item-level-3"><a href="/zh-cn/docs/deployment.html" target="_self">部署手册</a></li><li class="menu-item menu-item-level-3"><a href="/zh-cn/docs/cluster-mode-quick-start.html" target="_self">集群部署说明</a></li><li class="menu-item menu-item-level-3"><a href="/zh-cn/docs/management-api.html" target="_self">运维API</a></li><li class="menu-item menu-item-level-3"><a href="/zh-cn/docs/console-guide.html" target="_self">控制台手册</a></li><li class="menu-item menu-item-level-3"><a href="/zh-cn/docs/monitor-guide.html" target="_self">监控手册</a></li><li class="menu-item menu-item-level-3"><a href="/zh-cn/docs/nacos-config-benchmark.html" target="_self">服务配置模块压测报告</a></li><li class="menu-item menu-item-level-3"><a href="/zh-cn/docs/nacos-naming-benchmark.html" target="_self">服务发现模块压测报告</a></li><li class="menu-item menu-item-level-3"><a href="/zh-cn/docs/nacos-sync-use.html" target="_self">其他环境迁移到Nacos</a></li></ul></li><li style="height:36px;overflow:hidden" class="menu-item menu-item-level-2"><span>开源共建<img style="transform:rotate(-90deg)" class="menu-toggle" src="/img/arrow_down.png"/></span><ul><li class="menu-item menu-item-level-3"><a href="/zh-cn/docs/contributing.html" target="_self">贡献源码</a></li><li class="menu-item menu-item-level-3"><a href="/zh-cn/docs/contributing-flow.html" target="_self">贡献流程</a></li><li class="menu-item menu-item-level-3"><a href="/zh-cn/docs/pull-request.html" target="_self">pull request模板</a></li><li class="menu-item menu-item-level-3"><a href="/zh-cn/docs/how-to-reporting-bugs.html" target="_self">如何提交问题报告</a></li></ul></li><li style="height:36px;overflow:hidden" class="menu-item menu-item-level-2"><span>社区<img style="transform:rotate(-90deg)" class="menu-toggle" src="/img/arrow_down.png"/></span><ul><li class="menu-item menu-item-level-3"><a href="/zh-cn/docs/community.html" target="_self">社区</a></li><li class="menu-item menu-item-level-3"><a href="/zh-cn/docs/nacos-dev.html" target="_self">开发团队</a></li></ul></li></ul></li></ul></div><div class="doc-content markdown-body"><h1>Nacos服务配置性能测试报告</h1>
<h2>测试目的</h2>
<p>主要让大家了解Nacos的性能负载和容量，协助我们更好的管理Nacos性能质量，帮助用户更快的运用评估Nacos系统负荷。</p>
<h2>测试工具</h2>
<p>我们使用自研的PAS性能评估服务平台进行压测，其原理是基于利用JMeter引擎，使用PAS自动生成的JMeter脚本，进行智能压测。</p>
<p><img src="https://img.alicdn.com/tfs/TB1xCfDDpzqK1RjSZFvXXcB7VXa-692-297.png" alt="IMAGE"></p>
<h2>测试环境</h2>
<h3>1.环境</h3>
<table>
<thead>
<tr>
<th>指标</th>
<th>参数</th>
</tr>
</thead>
<tbody>
<tr>
<td>机器</td>
<td>CPU 8核，内存16G</td>
</tr>
<tr>
<td>集群规模</td>
<td>单机，3节点，10节点，100节点</td>
</tr>
<tr>
<td>Nacos版本</td>
<td>0.8.0</td>
</tr>
<tr>
<td>数据库</td>
<td>32C128G</td>
</tr>
</tbody>
</table>
<h3>2.设置启动参数</h3>
<pre><code>/opt/taobao/java/bin/java -server -Xms4g -Xmx4g -Xmn2g 
-XX:MetaspaceSize=128m 
-XX:MaxMetaspaceSize=320m 
-Xdebug 
-Xrunjdwp:transport=dt_socket,address=9555,server=y,suspend=n 
-XX:+UseConcMarkSweepGC 
-XX:+UseCMSCompactAtFullCollection 
-XX:CMSInitiatingOccupancyFraction=70 
-XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 
-XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8 
-XX:-UseParNewGC -verbose:gc -Xloggc:/home/admin/nacos/logs/nacos_gc.log 
-XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCApplicationStoppedTime 
-XX:+PrintAdaptiveSizePolicy -Dnacos.home=/home/admin/nacos -XX:-OmitStackTraceInFastThrow 
-XX:-UseLargePages -jar /home/admin/nacos/target/nacos-server.jar 
--spring.config.location=classpath:/,classpath:/config/,file:./,file:./config/,file:/home/admin/nacos/conf/
</code></pre>
<h2>测试场景</h2>
<p>以下测试场景都是服务配置重要接口：</p>
<ul>
<li>验证Nacos服务发布配置的能力</li>
<li>验证Nacos服务获取配置的能力</li>
<li>验证Nacos服务监听配置的能力</li>
<li>验证Nacos服务长连接容量能力</li>
</ul>
<h2>测试数据</h2>
<h3>1. 发布配置</h3>
<p>发布配置主要测试Nacos publishConfig接口的性能。<br>
在各规模集群的性能表现：</p>
<table>
<thead>
<tr>
<th style="text-align:center">单机</th>
<th style="text-align:center">3节点</th>
<th style="text-align:center">10节点</th>
<th style="text-align:center">100节点</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">1400</td>
<td style="text-align:center">4214</td>
<td style="text-align:center">6863</td>
<td style="text-align:center">8626</td>
</tr>
</tbody>
</table>
<p>具体我们看下3节点服务集群发布配置能力。<br>
以下为各个并发数 (施压机台数*并发数) 时，发布配置的TPS，平均RT。
<img src="https://img.alicdn.com/tfs/TB1OjzIDpzqK1RjSZFoXXbfcXXa-693-400.png" alt="IMAGE">
<img src="https://img.alicdn.com/tfs/TB1s.EfDxjaK1RjSZKzXXXVwXXa-693-325.png" alt="IMAGE"></p>
<h3>2. 获取配置</h3>
<p>获取配置对Nacos getConfig接口进行测试。<br>
实测在各个规模集群的性能表现：</p>
<table>
<thead>
<tr>
<th style="text-align:center">单机</th>
<th style="text-align:center">3节点</th>
<th style="text-align:center">10节点</th>
<th style="text-align:center">100节点</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">15000</td>
<td style="text-align:center">23013</td>
<td style="text-align:center">45000</td>
<td style="text-align:center">161099</td>
</tr>
</tbody>
</table>
<p>具体我们也看下3节点服务集群获取配置能力，以下为各个并发数 (施压机台数*并发数) 时，获取配置的TPS，平均RT。
<img src="https://img.alicdn.com/tfs/TB1UjzDDr2pK1RjSZFsXXaNlXXa-691-365.png" alt="IMAGE">
<img src="https://img.alicdn.com/tfs/TB1kcfADwTqK1RjSZPhXXXfOFXa-691-380.png" alt="IMAGE"></p>
<h3>3. 监听配置</h3>
<p>执行Nacos addListeners的接口的性能， 监听配置主要采用增加多个配置监听，并多次发布配置的方法，统计发布时间与监听接收到配置时间间隔。<br>
我们选取了几个点，列举了发布与监听时间差，在100ms内基本都能监听到配置的更改。</p>
<table>
<thead>
<tr>
<th style="text-align:center">次数</th>
<th style="text-align:center">发布与监听时间差(ms)</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">1</td>
<td style="text-align:center">63</td>
</tr>
<tr>
<td style="text-align:center">2</td>
<td style="text-align:center">53</td>
</tr>
<tr>
<td style="text-align:center">3</td>
<td style="text-align:center">84</td>
</tr>
<tr>
<td style="text-align:center">4</td>
<td style="text-align:center">73</td>
</tr>
<tr>
<td style="text-align:center">5</td>
<td style="text-align:center">46</td>
</tr>
<tr>
<td style="text-align:center">6</td>
<td style="text-align:center">35</td>
</tr>
<tr>
<td style="text-align:center">7</td>
<td style="text-align:center">73</td>
</tr>
<tr>
<td style="text-align:center">8</td>
<td style="text-align:center">183</td>
</tr>
<tr>
<td style="text-align:center">9</td>
<td style="text-align:center">104</td>
</tr>
</tbody>
</table>
<h3>4. 长连接容量测试</h3>
<p>Nacos监听配置与客户端建立长连接，长连接会消耗服务内存，从而集群load增高。建立长连接容量的能力，主要考查配置监听的瓶颈。<br>
测试方法逐渐增加集群的连接，单机连接达到9000时，CPU: 13.9% 内存：18.8%，load：4.7，都处于正常状态，连接数量增加后，load会成倍数级增加。<br>
在各规模集群测试基本上符合验证。</p>
<table>
<thead>
<tr>
<th style="text-align:center">单机</th>
<th style="text-align:center">3节点</th>
<th style="text-align:center">10节点</th>
<th style="text-align:center">100节点</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">9000</td>
<td style="text-align:center">27000</td>
<td style="text-align:center">90000</td>
<td style="text-align:center">910000</td>
</tr>
</tbody>
</table>
<h2>测试结论</h2>
<p>Nacos性能测试都是针对重点功能，通过对各规模集群进行压测，可以看到各个集群的接口容量。<br>
本测试供给大家作为参考，如有不足或偏差，请指正！<br>
如果对性能有其他需求，可以给我们提issue。</p>
</div></div></section><footer class="footer-container"><div class="footer-body"><img src="/img/nacos_gray.png"/><div class="cols-container"><div class="col col-12"><h3>愿景</h3><p>Nacos 通过提供简单易用的动态服务发现、服务配置、服务共享与管理等服务基础设施，帮助用户在云原生时代，在私有云、混合云或者公有云等所有云环境中，更好的构建、交付、管理自己的微服务平台，更快的复用和组合业务服务，更快的交付商业创新的价值，从而为用户赢得市场。</p></div><div class="col col-6"><dl><dt>文档</dt><dd><a href="/zh-cn/docs/what-is-nacos.html" target="_self">概览</a></dd><dd><a href="/zh-cn/docs/quick-start.html" target="_self">快速开始</a></dd><dd><a href="/zh-cn/docs/contributing.html" target="_self">开发者指南</a></dd></dl></div><div class="col col-6"><dl><dt>资源</dt><dd><a href="/zh-cn/community/index.html" target="_self">社区</a></dd><dd><a href="https://www.aliyun.com/product/acm?source_type=nacos_pc_20181219" target="_self">云服务 ACM</a></dd><dd><a href="https://www.aliyun.com/product/edas?source_type=nacos_pc_20181219" target="_self">云服务 EDAS</a></dd><dd><a href="https://www.aliyun.com/product/ahas?source_type=nacos_pc_20190225" target="_self">云服务 AHAS</a></dd></dl></div></div><div class="copyright"><span>@ 2018 The Nacos Authors | An Alibaba Middleware (Aliware) Project</span></div></div></footer></div></div>
	<script src="https://f.alicdn.com/react/15.4.1/react-with-addons.min.js"></script>
	<script src="https://f.alicdn.com/react/15.4.1/react-dom.min.js"></script>
	<script>
		window.rootPath = '';
  </script>
	<script src="/build/documentation.js"></script>
</body>
</html>